package com.study.goal.service;



import com.study.common.core.domain.PageQuery;
import com.study.common.core.page.TableDataInfo;
import com.study.goal.domain.bo.GoalBo;
import com.study.goal.domain.vo.GoalVo;

import java.util.Collection;
import java.util.List;

/**
 * 学习目标Service接口
 *
 * @author MT
 * @date 2025-09-03
 */
public interface IGoalService {

    /**
     * 查看目标详情
     * @param id 目标ID
     * @return
     */
    GoalVo queryById(Long id);

    /**
     * 分页查询目标列表
     * @param bo 目标信息
     * @param pageQuery 分页参数
     * @return
     */
    TableDataInfo<GoalVo> queryPageList(GoalBo bo, PageQuery pageQuery);

    /**
     * 分页查询目标列表
     * @param userId 目标用户ID
     * @param pageQuery 分页参数
     * @return
     */
    TableDataInfo<GoalVo> queryPageListById(Long userId, PageQuery pageQuery);


    /**
     * 新增学习目标
     * @param bo 目标信息
     * @param isChild 是否是子目标
     * @return
     */
    Boolean insertByBo(GoalBo bo,boolean isChild);

    /**
     * 修改学习目标
     * @param bo 目标信息
     * @param isChild 是否是子目标
     * @return
     */
    Boolean updateByBo(GoalBo bo,boolean isChild);

    /**
     * 删除目标
     * @param id 目标ID或者子目标ID
     * @return
     */
    Boolean deleteWithValidById(Long id);

}
